Proving Properties of Constraint Logic Programs by Eliminating Existential Variables
نویسندگان
چکیده
We propose a method for proving rst order properties of constraint logic programs which manipulate nite lists of real numbers. Constraints are linear equations and inequations over reals. Our method consists in converting any given rst order formula into a strati ed constraint logic program and then applying a suitable unfold/fold transformation strategy that preserves the perfect model. Our strategy is based on the elimination of existential variables, that is, variables which occur in the body of a clause and not in its head. Since, in general, the rst order properties of the class of programs we consider are undecidable, our strategy is necessarily incomplete. However, experiments show that it is powerful enough to prove several non-trivial program properties.
منابع مشابه
A Folding Rule for Eliminating Existential Variables from Constraint Logic Programs
The existential variables of a clause in a constraint logic program are the variables which occur in the body of the clause and not in its head. The elimination of these variables is a transformation technique which is often used for improving program efficiency and verifying program properties. We consider a folding transformation rule which ensures the elimination of existential variables and...
متن کاملA Folding Algorithm for Eliminating Existential Variables from Constraint Logic Programs
The existential variables of a clause in a constraint logic program are the variables which occur in the body of the clause and not in its head. The elimination of these variables is a transformation technique which is often used for improving program efficiency and verifying program properties. We consider a folding transformation rule which ensures the elimination of existential variables and...
متن کاملSet based Analysis of Reactive In nite state Systems
We present an automated abstract veri cation method for in nite state systems speci ed by logic programs which are a uniform and intermediate layer to which diverse formalisms such as transition sys tems pushdown processes and while programs can be mapped We establish connections between logic program semantics and CTL properties set based program analysis and pushdown processes and also betwee...
متن کاملStatic Analysis of Heap-Manipulating Low-Level Software
This paper describes a static (intraprocedural) analysis for analyzing heap-manipulating programs (in presence of recursive data structures and pointer arithmetic) in languages like C or low-level code. This analysis can be used for checking memory-safety, memory leaks, and user specified assertions. We first propose a rich abstract domain for representing useful invariants about such programs....
متن کاملProving Existential Termination of Normal Logic Programs
The most important open problem in the study of termination for logic programs is that of existential termination In this paper we present a pow erful transformational methodology that provides necessary and under some conditions su cient criteria for existential termination The followed approach is to develop a suitable transformation from logic programs to Term Rewriting Systems TRSs such tha...
متن کامل